package com.warframe.entity.alerts;

import com.alibaba.fastjson.annotation.JSONField;

import java.util.List;

public class AlertsMO {

    /**
     * id : 5bc7e291d7613693dfbe6f6b
     * activation : 2018-10-18T01:36:54.113Z
     * startString : -48m 5s
     * expiry : 2018-10-18T02:38:58.233Z
     * active : true
     * mission : {"node":"Montes (Venus)","type":"Sabotage","faction":"Corpus","reward":{"items":["Banshee Chorus Helmet Blueprint"],"countedItems":[],"credits":4700,"asString":"Banshee Chorus Helmet Blueprint + 4700cr","itemString":"Banshee Chorus Helmet Blueprint","thumbnail":"https://raw.githubusercontent.com/Warframe-Community-Developers/warframe-worldstate-parser/master/resources/alt_helmet_thumb.png","color":5666423},"minEnemyLevel":6,"maxEnemyLevel":11,"nightmare":false,"archwingRequired":true}
     * eta : 13m 58s
     * rewardTypes : ["helmet"]
     */

    @JSONField(name = "id")
    private String id;
    @JSONField(name = "activation")
    private String activation;
    @JSONField(name = "startString")
    private String startString;
    @JSONField(name = "expiry")
    private String expiry;
    @JSONField(name = "active")
    private Boolean active;
    @JSONField(name = "mission")
    private Mission mission;
    @JSONField(name = "eta")
    private String eta;
    @JSONField(name = "rewardTypes")
    private List<String> rewardTypes;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getActivation() {
        return activation;
    }

    public void setActivation(String activation) {
        this.activation = activation;
    }

    public String getStartString() {
        return startString;
    }

    public void setStartString(String startString) {
        this.startString = startString;
    }

    public String getExpiry() {
        return expiry;
    }

    public void setExpiry(String expiry) {
        this.expiry = expiry;
    }

    public Boolean isActive() {
        return active;
    }

    public void setActive(Boolean active) {
        this.active = active;
    }

    public Mission getMission() {
        return mission;
    }

    public void setMission(Mission mission) {
        this.mission = mission;
    }

    public String getEta() {
        return eta;
    }

    public void setEta(String eta) {
        this.eta = eta;
    }

    public List<String> getRewardTypes() {
        return rewardTypes;
    }

    public void setRewardTypes(List<String> rewardTypes) {
        this.rewardTypes = rewardTypes;
    }

    public static class Mission {
        /**
         * node : Montes (Venus)
         * type : Sabotage
         * faction : Corpus
         * reward : {"items":["Banshee Chorus Helmet Blueprint"],"countedItems":[],"credits":4700,"asString":"Banshee Chorus Helmet Blueprint + 4700cr","itemString":"Banshee Chorus Helmet Blueprint","thumbnail":"https://raw.githubusercontent.com/Warframe-Community-Developers/warframe-worldstate-parser/master/resources/alt_helmet_thumb.png","color":5666423}
         * minEnemyLevel : 6
         * maxEnemyLevel : 11
         * nightmare : false
         * archwingRequired : true
         */

        @JSONField(name = "node")
        private String node;
        @JSONField(name = "type")
        private String type;
        @JSONField(name = "faction")
        private String faction;
        @JSONField(name = "reward")
        private Reward reward;
        @JSONField(name = "minEnemyLevel")
        private Integer minEnemyLevel;
        @JSONField(name = "maxEnemyLevel")
        private Integer maxEnemyLevel;
        @JSONField(name = "nightmare")
        private Boolean nightmare;
        @JSONField(name = "archwingRequired")
        private Boolean archwingRequired;

        public String getNode() {
            return node;
        }

        public void setNode(String node) {
            this.node = node;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getFaction() {
            return faction;
        }

        public void setFaction(String faction) {
            this.faction = faction;
        }

        public Reward getReward() {
            return reward;
        }

        public void setReward(Reward reward) {
            this.reward = reward;
        }

        public Integer getMinEnemyLevel() {
            return minEnemyLevel;
        }

        public void setMinEnemyLevel(Integer minEnemyLevel) {
            this.minEnemyLevel = minEnemyLevel;
        }

        public Integer getMaxEnemyLevel() {
            return maxEnemyLevel;
        }

        public void setMaxEnemyLevel(Integer maxEnemyLevel) {
            this.maxEnemyLevel = maxEnemyLevel;
        }

        public Boolean isNightmare() {
            return nightmare;
        }

        public void setNightmare(Boolean nightmare) {
            this.nightmare = nightmare;
        }

        public Boolean isArchwingRequired() {
            return archwingRequired;
        }

        public void setArchwingRequired(Boolean archwingRequired) {
            this.archwingRequired = archwingRequired;
        }

        public static class Reward {
            /**
             * items : ["Banshee Chorus Helmet Blueprint"]
             * countedItems : []
             * credits : 4700
             * asString : Banshee Chorus Helmet Blueprint + 4700cr
             * itemString : Banshee Chorus Helmet Blueprint
             * thumbnail : https://raw.githubusercontent.com/Warframe-Community-Developers/warframe-worldstate-parser/master/resources/alt_helmet_thumb.png
             * color : 5666423
             */

            @JSONField(name = "credits")
            private Integer credits;
            @JSONField(name = "asString")
            private String asString;
            @JSONField(name = "itemString")
            private String itemString;
            @JSONField(name = "thumbnail")
            private String thumbnail;
            @JSONField(name = "color")
            private Integer color;
            @JSONField(name = "items")
            private List<String> items;
            @JSONField(name = "countedItems")
            private List<?> countedItems;

            public Integer getCredits() {
                return credits;
            }

            public void setCredits(Integer credits) {
                this.credits = credits;
            }

            public String getAsString() {
                return asString;
            }

            public void setAsString(String asString) {
                this.asString = asString;
            }

            public String getItemString() {
                return itemString;
            }

            public void setItemString(String itemString) {
                this.itemString = itemString;
            }

            public String getThumbnail() {
                return thumbnail;
            }

            public void setThumbnail(String thumbnail) {
                this.thumbnail = thumbnail;
            }

            public Integer getColor() {
                return color;
            }

            public void setColor(Integer color) {
                this.color = color;
            }

            public List<String> getItems() {
                return items;
            }

            public void setItems(List<String> items) {
                this.items = items;
            }

            public List<?> getCountedItems() {
                return countedItems;
            }

            public void setCountedItems(List<?> countedItems) {
                this.countedItems = countedItems;
            }
        }
    }
}
